/* Soubor je ulozen v kodovani UTF-8.
 * Kontrola kódování: Příliš žluťoučký kůň úpěl ďábelské ódy. */

package cz.vse.adventura.po1715.xshet00_shevtsova.hra;

import  cz.pecinovsky.english.pojj.adv_framework.game_gui.IObjectG;
import javax.swing.Icon;



/*******************************************************************************
 * Instance třídy {@code Object} představují předměty ve hře
 *
 * @author    Tatyana Shevtsova
 * @version 
 */
public class Object implements IObjectG
{
//== KONSTANTNÍ ATRIBUTY TŘÍDY =================================================


    /** Prefix určující, že předmět nepůjde zvednout. */
    public static final char TEZKY_PREDMET = '#';


    /** Univerzílní předmět zastupující všechny nezvednutelné předměty. */
    public static final Object TIHA = new Object( "#TIHA" );




    //== PROMĚNNÉ ATRIBUTY TŘÍDY ===================================================
//== STATICKÝ INICIALIZAČNÍ BLOK - STATICKÝ KONSTRUKTOR ========================
//== KONSTANTNÍ ATRIBUTY INSTANCÍ ==============================================
     private final boolean zvednutelný;
    private final String  název;


//== PROMĚNNÉ ATRIBUTY INSTANCÍ ================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ TŘÍDY ========================================
//== OSTATNÍ NESOUKROMÉ METODY TŘÍDY ===========================================

//##############################################################################
//== KONSTRUKTORY A TOVÁRNÍ METODY =============================================

       public Object(String název)
    {
        boolean a = false,
                z = true;

        switch (název.charAt(0))
        {
            case TEZKY_PREDMET:
                název = název.substring(1);
                z = false;
                break;


        }
        this.název       = název;
        this.zvednutelný = z;
    }





//== ABSTRAKTNÍ METODY =========================================================
//== PŘÍSTUPOVÉ METODY VLASTNOSTÍ INSTANCÍ =====================================

    /***************************************************************************
     * Vrátí název dané instance.
     *
     * @return Nazev instance
     */
    @Override
    public String getName()
    {
        return název;
    }


    /***************************************************************************
     * Vrátí informaci o tom, dá-li se předmět zvednout a vložit do batohu.
     *
     * @return {@code true} - dá se zvednout, jinak {@code false}
     */
    @Override
    public boolean isTransportable()
    {
        return zvednutelný;
    }



    /***************************************************************************
     * Vrátí odkaz na obrázek daného předmětu.
     *
     * @return  Požadovaný odkaz
     */
    @Override
    public Icon getPicture()
    {
        throw new UnsupportedOperationException();
    }
//== OSTATNÍ NESOUKROMÉ METODY INSTANCÍ ========================================

      /***************************************************************************
     * Vrátí název dané instance.
     *
     * @return Nazev instance
     */
    @Override
    public String toString()
    {
        return název;
    }

//== SOUKROMÉ A POMOCNÉ METODY TŘÍDY ===========================================
//== SOUKROMÉ A POMOCNÉ METODY INSTANCÍ ========================================
//== INTERNÍ DATOVÉ TYPY =======================================================
//== TESTY A METODA MAIN =======================================================

}
